#!/bin/bash

# 定义下载函数
download_qubic() {
    echo "请选择更新的qli-Client 版本:"
    echo "更新完锄头请重新配置文件"
    echo "1. qli-Client"  
    echo "2. 跳过更新"
    read rqiner_choice

    case $rqiner_choice in
        1)
            echo "正在下载qli-Client..."
            wget -O qli-Client http://106.54.62.152/qli-Client && chmod 777 qli-Client
            if [ $? -ne 0 ]; then
                echo "下载失败，请检查网络连接或链接是否正确。"
            fi
            ;;
        2)
            echo "跳过 qli-Client 更新"
            ;;            
        *)
            echo "无效选择"
            ;;
    esac
}

download_xmrig() {
    echo "是否更新 xmrig?"
    echo "1. 更新"
    echo "2. 跳过更新"
    read xmrig_choice

    case $xmrig_choice in
        1)
            echo "正在下载xmrig..."
            wget -O xmrig https://gitee.com/dudu1luchang/dudu/raw/master/xmrig && sudo chmod 777 xmrig
            if [ $? -ne 0 ]; then
                echo "下载失败，请检查网络连接或链接是否正确。"
            fi
            ;;
        2)
            echo "跳过 xmrig 更新"
            ;;            
        *)
            echo "无效选择"
            ;;
    esac
}

# 主菜单循环
while true; do
    # 显示菜单
    echo "qubic（li池）+zeph，请选择一个操作:"
    echo "第一次使用请先更新锄头，再配置文档之后启动挖矿..."
    echo "有问题请联系：du.叫兽（微信号duduyiluchang）"
    echo " "
    echo "1. 更新锄头"
    echo "2. 配置文档"
    echo "3. 查看配置"
    echo "4. 启动挖矿"
    echo "5. 停止挖矿"
    echo "6. 查看日志"
    echo "0. 退出脚本"

    # 获取用户选择
    read choice

    case $choice in
        1)
            # 更新 rqiner 和 xmrig
            download_qubic
            download_xmrig
            ;;
        2)
            echo "配置文档..."
            
            # 获取 qubic 密令地址
            echo "请输入qubic密令地址:"
            read qubic_token
            qubic_token=${qubic_token:-eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJJZCI6IjQwNWIwN2VlLTM0NWUtNDA1OC05YzU1LTc0MjNhNDk1ODE5MiIsIk1pbmluZyI6IiIsIm5iZiI6MTczMzQ3ODQ5OSwiZXhwIjoxNzY1MDE0NDk5LCJpYXQiOjE3MzM0Nzg0OTksImlzcyI6Imh0dHBzOi8vcXViaWMubGkvIiwiYXVkIjoiaHR0cHM6Ly9xdWJpYy5saS8ifQ.AhOynFJztlC1IahgLs46fg8n17HL3J12OTj4hvwkS-s-4WhX5XqoBGstSTl4h7yZsdJU3Shm70lhVnwyZh-2VcHs4G7L7bN3-LogPYKT9syjONT6voeuk_7R8dkntBTTw-DyeC8WuPqfQGhvmA05KSLDB6a3HmjdhqefvQaAPy4I0wCOKkp8dnbuFWgesq_CHHR7fuhTYi9xvyJ2cnfslGKOELFwCZG0fK9wt6e-zAUr-vbpRCfPx63XGKE0SEB0MZZ5rA482U8y_rQbe12si50QO7sKtZU4PcL4xIkWajt-LnhhrhD29dSuWGH331LUt_NIgVZWAnXOePPywNjJVg}

            # 获取 qli-Client 的线程数
            echo "qli-Client的线程数 [默认: -1]:"
            read qubic_threads
            qubic_threads=${qubic_threads:--1}

            # 获取 qli-Client 的大内存开启数
            echo "开启qli-Client大内存的数值 [默认：0]:"
            echo "AVX512指令集的，则为线程数*100，例如32线程，则填3200"
            echo "AVX2指令集的，则为线程数*90，例如32线程，则填2880"
            read hugepages
            hugepages=${hugepages:--0}

            # 获取矿机名称（默认值：dudu）
            echo "请输入矿机名称 [默认: dudu]:"
            read miner_name
            miner_name=${miner_name:-dudu}

            # 获取 zeph 池子地址（默认值：www.duduyiluchang.store:1123）
            echo "zeph池子地址（默认为www.duduyiluchang.store:1123）:"
            read zeph_pool
            zeph_pool=${zeph_pool:-www.duduyiluchang.store:1123}
            
            # 获取 zeph 钱包地址
            echo "请输入zeph钱包地址:"
            read zeph_address
            zeph_address=${zeph_address:-ZEPHs95zw4Thmw3kDm1opBa5sWFCb5GgRG4UPmYcAsx5NC4mFsq3RBLDUj6X6tzDncZqcJyoSEeQvjSDe75D85dhV1SNyijsdmH}

            # 获取 zeph 线程数（默认值：0）
            echo "请输入zeph线程数 [默认: 0]:"
            read threads
            threads=${threads:-0}

            # 创建 qubic_zeph.conf 文件并写入配置
            echo "qubic_token=$qubic_token" > qubic_zeph.conf
            echo "qubic_threads=$qubic_threads" >> qubic_zeph.conf
            echo "threads=$threads" >> qubic_zeph.conf
            echo "miner_name=$miner_name" >> qubic_zeph.conf
            echo "zeph_address=$zeph_address" >> qubic_zeph.conf
            echo "zeph_pool=$zeph_pool" >> qubic_zeph.conf
            echo "hugepages=$hugepages" >> qubic_zeph.conf
            
            # 下载并修改配置文件
            wget -O appsettings.json https://gitee.com/dudu1luchang/dudu/raw/master/appsettings.json && sudo chmod 777 appsettings.json

            # 使用 sed 替换 JSON 文件中的字段
            sed -i "s/\"cpuThreads\": qubic_threads/\"cpuThreads\": \"$qubic_threads\"/" appsettings.json
            sed -i "s/\"alias\": \"[^\"]*\"/\"alias\": \"$miner_name\"/" appsettings.json
            sed -i "s/\"accessToken\": \"[^\"]*\"/\"accessToken\": \"$qubic_token\"/" appsettings.json


            # 提示配置完成
            echo "配置文档已经完成，请稍等..."
            
            # 下载新的脚本文件
            wget -O qubic_zeph.sh https://gitee.com/dudu1luchang/dudu/raw/master/qubic_zeph.sh && sudo chmod 777 qubic_zeph.sh
            ;;            
        3)
            echo "查看配置..."
            # 在这里添加查看配置的代码
            if [ -f "qubic_zeph.conf" ]; then
                cat qubic_zeph.conf
                echo ""
                echo ""
                echo ""
                echo ""
                echo ""
            else
                echo "配置文件 qubic_zeph.sh 不存在，请先运行配置文档。"
            fi
            ;;
        4)
            echo "启动挖矿..."
            # 在这里添加启动挖矿的代码
            if [ -f "qubic_zeph.sh" ]; then
                # 在后台运行并且不记录日志
                nohup bash qubic_zeph.sh &>/dev/null &
                echo "脚本已在后台运行。"
            else
                echo "脚本 qubic_zeph.sh 不存在，请先运行配置文档。"
            fi
            ;;
        5)
            echo "停止挖矿..."
            # 在这里添加停止挖矿的代码
            echo "正在停止挖矿..."
            pkill -f "qubic_zeph.sh"
            echo "挖矿已停止。"
            ;;
        6)
            # 检查是否存在至少一个日志文件
            if [ -f "qubic.log" ] || [ -f "xmrig.log" ]; then
                echo "正在查看日志，按 q 退出查看并返回菜单..."
                sleep 1

                # 如果 qubic.log 存在，则查看 qubic.log
                if [ -f "qubic.log" ]; then
                    tail -f qubic.log &   # 通过后台进程查看 qubic.log
                    tail_pid_qubic=$!     # 获取后台进程的PID
                fi

                # 如果 xmrig.log 存在，则查看 xmrig.log
                if [ -f "xmrig.log" ]; then
                    tail -f xmrig.log &   # 通过后台进程查看 xmrig.log
                    tail_pid_xmrig=$!     # 获取后台进程的PID
                fi

                while true; do
                    # 监听用户输入，1秒钟检查一次
                    read -t 1 -n 1 input
                    if [[ "$input" == "q" ]]; then
                        echo "退出日志查看，返回菜单..."
                        # 结束 tail -f 进程
                        if [ -n "$tail_pid_qubic" ]; then
                            kill $tail_pid_qubic   # 结束 tail -f qubic.log 进程
                        fi
                        if [ -n "$tail_pid_xmrig" ]; then
                            kill $tail_pid_xmrig   # 结束 tail -f xmrig.log 进程
                        fi
                        break
                    fi
                done
            else
                echo "日志文件 qubic.log 或 xmrig.log 不存在，请先启动挖矿。"
                echo "当前目录下的文件:"
                ls -l
            fi
            ;;

        0)
            echo "退出脚本"
            exit 0
            ;;
        *)
            echo "无效选择"
            ;;
    esac
done
